#ifndef __COMPONENT_H_INCLUDE__
#define __COMPONENT_H_INCLUDE__
#include "SceneObject.h"

class SceneObject;
enum ComponentType
{
	GAME_COMPONENT_MODEL,
	GAME_COMPONENT_PROPERTY,
	GAME_COMPONENT_SKILL,
	GAME_COMPONENT_AI,
	GAME_COMPONENT_EQUIPMENT,
	GAME_COMPONENT_COUNT
};



class Component
{
public:
	Component(SceneObject *pCreator, int type, int order);

	virtual ~Component();

	virtual void changeLayer() {}

	int getType() const {
		return m_type;
	}

	int getOrder() const {
		return m_order;
	}

	virtual void update(int deltaTimeMs) {};

	SceneObject* getCreator() {
		return m_pCreator;
	}
protected:
	SceneObject *m_pCreator;

private:
	int m_type;
	int m_order;
};
#endif//__COMPONENT_H_INCLUDE__